package com.envision.mdm.service;

import com.envision.eeop.api.domain.DomainPoint;
import com.envision.eeop.api.domain.MdmChildObjects;
import com.envision.eeop.api.domain.MdmObjectAttributes;

import java.util.List;
import java.util.Map;

/**
 * <strong>Title : MdmService.java<br>
 * </strong> <strong>Description : </strong><br>
 * <strong>Create on : 2018年07月10日<br>
 * <p>
 *
 * @author karrychang<br>
 * @version <strong>1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人		修改日期		修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface MdmService {
    /** 
    *************************************************************************
     * MdmService.java——getObjectAttributes<br>
     * Author: karrychang<br>
     * Date: 2018/7/10<br>
     * Description:获取对象属性列表数据<br>
     * Used in：<br>
     * @param mdmIDList
     * @param attributeList
     * @return
     *************************************************************************
     */
    public Map<String, MdmObjectAttributes> getObjectAttributes(List<String> mdmIDList , List<String> attributeList);
    /** 
    *************************************************************************
     * MdmService.java——getmdmidspoints<br>
     * Author: karrychang<br>
     * Date: 2018/7/10<br>
     * Description:获取实时数据<br>
     * Used in：<br>
     * @param deviceIDList
     * @param pointIDList
     * @param fieldList
     * @return
     *************************************************************************
     */
    public Map<String, DomainPoint> getmdmidspoints(List<String> deviceIDList , List<String> pointIDList, List<String> fieldList);
    /** 
    *************************************************************************
     * MdmService.java——getDetailsV2<br>
     * Author: karrychang<br>
     * Date: 2018/7/10<br>
     * Description:获取历史明细数据V2<br>
     * Used in：<br>
     * @param mdmIds
     * @param metrics
     * @param beginTime
     * @param endTime
     * @return
     *************************************************************************
     */
    public List<Map<String,String>> getDetailsV2(List<String> mdmIds ,List<String> metrics,String beginTime,String endTime);
    /** 
    *************************************************************************
     * MdmService.java——getObject<br>
     * Author: karrychang<br>
     * Date: 2018/7/10<br>
     * Description:获取对象列表数据<br>
     * Used in：<br>
     * @param mdmIDList
     * @param typeList
     * @param attributeList
     * @return
     *************************************************************************
     */
    public Map<String, MdmChildObjects> getObject(List<String> mdmIDList , List<String> typeList, List<String> attributeList);
    /** 
    *************************************************************************
     * MdmService.java——getdayvalues<br>
     * Author: karrychang<br>
     * Date: 2018/7/10<br>
     * Description:获取零点值<br>
     * Used in：<br>
     * @param deviceIDList
     * @param pointIDList
     * @return
     *************************************************************************
     */
    public Map<String, DomainPoint> getdayvalues(List<String> deviceIDList,List<String> pointIDList);
}
